with Ada.Text_IO, Ada.Integer_Text_IO;
use Ada.Text_IO, Ada.Integer_Text_IO;

package body Repartidores is

    task body TareaRepartidor is
	ZapatoARepartir: Zapato;
	Estanteria: TareaEstanteriaInfinita_Ref;
	NombreRepartidor: Str100.Bounded_String;
    begin
	accept Init(EstanteriaZapatosARepartir: in TareaEstanteriaInfinita_Ref; Nombre: in Str100.Bounded_String) do
		Estanteria := EstanteriaZapatosARepartir;
		NombreRepartidor := Nombre;
	end Init;
	loop
		Put_Line("[" & Str100.To_String(NombreRepartidor) & "] Tomando Zapato para repartir...");
		Estanteria.all.Quitar(ZapatoARepartir);
		Put("[" & Str100.To_String(NombreRepartidor) & "] Repartiendo Zapato: ");
		Put(Numero(ZapatoARepartir));
		New_Line;
		delay Duration(TiempoEstimado(ZapatoARepartir));
	end loop;
    end TareaRepartidor;

end Repartidores;

